diff --git a/requests/models.py b/requests/models.py
index 6b4a2994..2cfc7011 100644
--- a/requests/models.py
+++ b/requests/models.py
@@ -106,6 +106,8 @@ class RequestEncodingMixin(object):
                 val = [val]
             for v in val:
                 if v is not None:
+                    if not isinstance(v, (str, bytes)):
+                        v = str(v)
                     new_fields.append(
                         (field.decode('utf-8') if isinstance(field, bytes) else field,
                          v.encode('utf-8') if isinstance(v, str) else v))
